M98 P"0:/sys/user/variables/XySquareManual.g"
M98 P"0:/sys/user/variables/XySquareMode.g"

set global.xySquareMode = "manual"

var step = 0.1
var limit = 2.0
var epsilon = 0.0001

var current = global.xySquareManual
if var.current <= ((0 - var.limit) + var.epsilon)
  echo "Manual XY squaring offset already at -"^{var.limit}^"mm (counterclockwise limit)."
  M99

var newValue = var.current - var.step
if var.newValue < (0 - var.limit)
  set var.newValue = 0 - var.limit

var scaled = (var.newValue * 10) + 0.5
set var.newValue = floor(var.scaled) / 10

set global.xySquareManual = var.newValue

echo >"0:/sys/user/variables/XySquareManual.g" "set global.xySquareManual = " ^ var.newValue

echo >"0:/sys/user/variables/XySquareMode.g" "set global.xySquareMode = ""manual"""

echo "Mode changed to manual. XY squaring offset adjusted counterclockwise to "^{var.newValue}^"mm and saved."